package com.zhu.shop.app.config;

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;

@Configuration
public class RestTemplateConfig {
    @Bean
    @LoadBalanced //负载均衡 Ribbon负载均衡

    /**
     * 负载均衡
     * 服务端负载均衡
     * 当消费方 访问服务提供者的时候，首先通过负载均衡的算法给出访问的服务提供者
     * 客户端负载均衡
     * 消费方在请求的时候，在发送请求之前已经选好了服务提供者
     * 一般会选择客户端负载均衡 有消费方自主选择服务提供者
     *
     */
    public RestTemplate restTemplate(ClientHttpRequestFactory requestFactory){
        return new RestTemplate(requestFactory);
    }

    @Bean
    public ClientHttpRequestFactory requestFactory(){
        return new SimpleClientHttpRequestFactory();
    }
}
